package com.weipai.springboot.module.dao;

import com.weipai.springboot.enums.DemandStatus;
import com.weipai.springboot.model.Demand;
import com.weipai.springboot.model.api.Response;

import java.util.List;
import java.util.Map;

/**
 * @Author: 曹朋飞
 * @Date: 2018/08/27 10:28
 */
public interface DemandDao {

    //保存
    int save(Demand demand);

    //查询数据
    List<Demand> selectAllByDemand(String demandCategoryId);

    //查看需求详情
    Demand getDemandById(String id);

    List<Demand> selectDemandByStatus(Integer demandStatus, int i, Integer size);

    Integer countDemandByStatus(Integer demandStatus);

    //需求列表
    List<Map<String,Object>> demandListByCity(Integer start, Integer size, Integer status);

    //需求总数量
    Integer demandListAmountByCity(Integer status);

    List<Map<String,Object>> demandListByCustomer(Integer start, Integer size, String customerId, Integer status);

    Integer demandListAmountByCustomer(String customerId, Integer status);

    //更改需求的状态
    int updateStatus(String id, Integer status);

    int update(Demand demand);

    List<Demand> demandListByArtisanId(String artisanId, Integer status);

    //按月份和需求订单状态分组查出每个月各个订单的数量
    List<Map<String,Object>> demandStatement(String time, String demandCategoryId);

    //每个分类下的订单数量
    List<Map<String,Object>> getDemandCountList(String time, int demandStatus);

    //技工的订单数
    Integer getDemandAmountByArtisan(String artisanId, Integer status);

    //通过订单号查询需求
    Map<String,Object> getDemandInfoByDemandNumber(String orderNumber);

    //通过订单号查询需求对象
    Demand getDemandByDemandNumber(String orderNumber);

    //更改需求订单为交易成功
    int updatePayStatus(String orderNumber, Integer payment, int status);

    //根据需求订单状态查询订单
    List<Map<String,Object>> getDemandByDemandStatus(int processing);

    Integer demandListAmountByArtisanId(String artisanId, Integer status);

    List<Map<String,Object>> demandListByArtisanId(Integer start, Integer size, String artisanId, Integer status);

    List<Map<String,Object>> getDemandByArtisan(String id);
}
